package com.shenshen.Unit;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringUtil {

	/*
	 * 字符串工具类
	 */

	private static Pattern pattern;

	/*
	 * 功能：检查包含空白字符在内的字符系列长度
	 */

	public static boolean hasLength(String src) {
		// TODO 实现代码
		if (src == null)
			return false;
		if (src.length() == 0)
			return false;
		return true;
	}

	/*
	 * 功能：检查包含空白字符在内的字符系列长度，并处理过滤前后空格
	 */

	public static boolean hasText(String src) {
		// TODO 实现代码
		if (src == null || src.trim().length() == 0)
			return false;
		return true;
	}

	/*
	 * * 功能：验证是否为合格邮箱
	 */
	public static boolean isEmail(String email) {

		if (email == null)
			return false;
		// TODO 实现代码
		String reg = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
		// 编译正则表达式
		pattern = Pattern.compile(reg);
		// 进行匹配
		Matcher matcher = pattern.matcher(email);
		return matcher.matches();

	}

	/*
	 * 功能：验证是否为合格手机号
	 */

	public static boolean isPhone(String src) {
		// TODO 实现代码

		if (src == null)
			return false;
		// TODO 实现代码
		String reg = "^(((13[0-9])|(14[579])|(15([0-3]|[5-9]))|(16[6])|(17[0135678])|(18[0-9])|(19[89]))\\d{8})$";
		// 编译正则表达式
		pattern = Pattern.compile(reg);
		// 进行匹配
		Matcher matcher = pattern.matcher(src);
		return matcher.matches();
	}

	/*
	 * 判断是否全部为字母
	 */
	public static boolean isLetter(String src) {
		if (null == src || src.trim().length() == 0)
			return false;

		// TODO 实现代码
		char[] array = src.toCharArray();
//		('a' 'z' )  ('A' 'Z')
		for (char c : array) {
			if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) {
				return false;
			}
		}
		//
		return true;

	}

	public static String reverse(String src) {
		if (src == null)
			return null;

		// TODO 实现代码
		char[] array = src.toCharArray();
		StringBuffer sb = new StringBuffer(); // StringBuilder
		// String s = new String();
		for (int i = array.length - 1; i >= 0; i--) {
			sb.append(array[i]);
			// s = s + array[i];
		}
		return sb.toString();

	}

	public static String hidden(String src, Integer start, Integer end) {
		// TODO 实现代码
		char[] array = src.toCharArray();
		for (int i = start; i < end; i++) {
			array[i] = '*';
		}

		return new String(array);

	}

}
